#pragma once

#include <functional>
#include "lwip/pbuf.h"

class AsyncClient;
using AcAckHandler      = std::function<void(void* arg, AsyncClient* c, size_t len, uint32_t time)>;
using AcPacketHandler   = std::function<void(void* arg, AsyncClient* c, pbuf* pb)>;
using AcDataHandler     = std::function<void(void* arg, AsyncClient* c, void* data, size_t len)>;
using AcConnectHandler  = std::function<void(void* arg, AsyncClient* c)>;
using AcErrorHandler    = std::function<void(void* arg, AsyncClient* c, err_t error)>;
using AcTimeoutHandler  = std::function<void(void* arg, AsyncClient* c, uint32_t time)>;
